package api.ttgame;

import android.app.Application;
import android.content.Context;

import java.lang.ref.SoftReference;

public abstract class Game_API_TT {

    public static String clazz = "com.toutiaogame.library.TT_Game";

    private static SoftReference<Game_API_TT> sf;

    public synchronized static Game_API_TT getInstance() {

        if (sf == null || sf.get() == null) {
            Object o = null;
            try {
                o = Class.forName(clazz).newInstance();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            }
            if (o != null) {
                sf = new SoftReference<>((Game_API_TT) o);
                return (Game_API_TT) o;
            }
        }
        return sf == null ? null : sf.get();
    }

    /**
     *
     *     需要在Application中初始化
     *     注意：如果有多个进程，请务必确保这个初始化逻辑只会在一个进程里运行
     *
     * @param context
     * @param appid
     * @param gameLoadId // 游戏加载时，插屏广告1:1，模板渲染
     * @param rewardVideoId  激励视频id
     * @param fullVideoId 全屏视频id
     * @param bannerId banner id
     * @param interIdId  插屏id
     * @param gameEndId  游戏退出弹框，信息流广告，模板渲染
     * @param gameListId      游戏列表，信息流广告，模板渲染
     * @param isTemplate  true是模板模式  false是原生模式
     * @param isDebug
     */
    public abstract void initGame(Application context, String appid, String gameAppid, String gameHostUrl,String gameLoadId,String rewardVideoId, String fullVideoId, String bannerId, String interIdId,String gameEndId ,String gameListId ,boolean isTemplate, boolean isDebug);
    /**
     *
     * 在需要的时候打开游戏界面
     */
    public abstract void startGameActivity(Context context);

}
